package com.uzai.console.service.tiktok;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.uzai.console.dto.module.deviceproduct.DeviceProductQuery;
import com.uzai.console.dto.tiktok.devicetiktokinfo.*;
import com.uzai.console.dto.wechatprivate.devicewechatinfo.*;
import com.uzai.console.vo.deviceproduct.DeviceProductVo;
import com.uzai.console.vo.tiktok.devicetiktokinfo.DeviceTiktokInfoAddVo;
import com.uzai.console.vo.tiktok.devicetiktokinfo.DeviceTiktokInfoVo;
import com.uzai.console.vo.wechatprivate.devicewechatinfo.DeviceAmountVo;
import com.uzai.console.vo.wechatprivate.devicewechatinfo.DevicePriceVo;

import java.util.List;

/**
 * 抖音设备机器人
 * @author liuqi
 * @date 2021年08月19日 16:06
 */
public interface DeviceTiktokInfoService {


    /**
     * 查询抖音设备机器人列表
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param deviceTiktokInfoQuery
     * @return null
     */
    Page<DeviceTiktokInfoVo> findDeviceTiktokInfoList(DeviceTiktokInfoQuery deviceTiktokInfoQuery);

    /**
     * 查询抖音设备机器人详情
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param deviceTiktokInfoIdDto
     * @return null
     */
    DeviceTiktokInfoVo findDeviceTiktokInfoInfo(DeviceTiktokInfoIdDto deviceTiktokInfoIdDto);

    /**
     * 添加个人机器人新版（只负责添加移动端机器人，如果未授权则试用5天）
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param deviceGroupInfoAddDto
     */
    void addDeviceTiktokInfo(DeviceTiktokInfoAddDto deviceGroupInfoAddDto);

    /**
     * 修改机器人信息
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param deviceGroupInfoDto
     */
    void updateDeviceTiktokInfo(DeviceTiktokInfoDto deviceGroupInfoDto);

    /**
     * 批量修改机器人信息
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param deviceTiktokInfoBatchDto
     */
    void batchUpdateDeviceTiktokInfo(DeviceTiktokInfoBatchDto deviceTiktokInfoBatchDto);

    /**
     * 抖音设备机器人删除
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param deviceTiktokInfoDelDto
     * @return null
     */
    Boolean delDeviceTiktokInfo(DeviceTiktokInfoDelDto deviceTiktokInfoDelDto);

    /**
     * 购买授权
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param deviceTiktokInfoBuyAuthDto
     */
    DeviceTiktokInfoAddVo buyDeviceAuth(DeviceTiktokInfoBuyAuthDto deviceTiktokInfoBuyAuthDto);

    /**
     * 查询添加或者购买总金额
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param deviceAmountDto
     */
    DeviceAmountVo getAmount(DeviceAmountDto deviceAmountDto);


    /**
     * 查询购买产品授权价格
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param devicePriceDto
     */
    DevicePriceVo getDevicePrice(DevicePriceDto devicePriceDto);

    /**
     * 查询设备产品列表
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param deviceProductQuery
     */
    List<DeviceProductVo> deviceProductList(DeviceProductQuery deviceProductQuery);

    /**
     * 转移授权时间
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param tranferAuthTimeDto
     */
    void transferAuthTime(TranferAuthTimeDto tranferAuthTimeDto);

    /**
     * 删除机器人且转移数据
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param delAndTransferDataDto
     */
    void delAndTransferData(DelAndTransferDataDto delAndTransferDataDto);

    /**
     * 刷新在线状态
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param merId
     */
    void refreshOnlineStatus(Long merId);

    /**
     * 查询所有抖音设备机器人列表
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param deviceTiktokInfoQuery
     * @return null
     */
    List<DeviceTiktokInfoVo> findDeviceTiktokInfoSelect(DeviceTiktokInfoQuery deviceTiktokInfoQuery);

    /**
     * 更新手机版
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param deviceTiktokInfoIdDto
     * @return null
     */
    void updateMobileClientSoft(DeviceTiktokInfoIdDto deviceTiktokInfoIdDto);

    /**
     * 批量更新手机版
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param deviceTiktokInfoIdListDto
     * @return null
     */
    void batchUpdateMobileClientSoft(DeviceTiktokInfoIdListDto deviceTiktokInfoIdListDto);

    /**
     * 增加试用期授权
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param deviceTiktokInfoAddProbationAuth
     * @return null
     */
    void addProbationAuth(DeviceTiktokInfoAddProbationAuth deviceTiktokInfoAddProbationAuth);

}
